package lbj.cyw.dp;

/**
 * @author lakersUp
 * @Classname
 * @Description
 * @Date 2022/4/5 10:39
 * @Version 1.0
 */
public class WiggleMaxLength376 {
    public int wiggleMaxLength(int[] nums) {
//        int n=nums.length;
//        if(n<=1){
//            return n;
//        }
//        int[] up=new int[n];
//        int[] down=new int[n];
//        up[0]=down[0]=1;
//        for(int i=1;i<n;i++){
//            if(nums[i]>nums[i-1]){
//                up[i]=Math.max(up[i-1],down[i-1]+1);
//                down[i]=down[i-1];
//            }else if(nums[i]<nums[i-1]){
//                up[i]=up[i-1];
//                down[i]=Math.max(down[i-1],up[i-1]+1);
//            }else {
//                down[i]=down[i-1];
//                up[i]=up[i-1];
//            }
//        }
//        return Math.max(up[n-1],down[n-1]);
        int res=1;
        int flag=0;
        int first=0;
        for (int i = 0; i < nums.length-1; ++i) {
            //first把开头相同的全过滤掉了
            if(nums[i]<nums[i+1]&&(flag==0||first==0)){
                res++;
                flag=1;
                first=1;
            }
            if(nums[i]>nums[i+1]&&(flag==1||first==0)){
                res++;
                flag=0;
                first=1;
            }
        }
        new Object();
        return res;
    }
}
